/*
*所有关于Quality_InboundTest类的业务代码接口应在此处编写
*/
using iMES.Core.BaseProvider;
using iMES.Core.Utilities;
using iMES.Entity.DomainModels;
using Microsoft.AspNetCore.Http;
using System;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace Yun.New_QualityTest.IServices
{
    public partial interface IQuality_InboundTestService
    {


        /// 获取table1的数据
        /// </summary>
        /// <param name="loadData"></param>
        /// <returns></returns>
        Task<object> GetTable1Data(PageDataOptions loadData);

        /// <summary>
        /// 获取包含供应商、采购员等关联信息的采购单列表
        /// </summary>
        /// <param name="options">分页参数</param>
        /// <returns>采购单及关联信息</returns>
        Task<object> GetPurchaseOrderWithDetails(PageDataOptions options);

        /// <summary>
        /// 上传附件
        /// </summary>
        /// <param name="file">上传的文件</param>
        /// <returns>文件保存路径</returns>
        Task<WebResponseContent> UploadFile(IFormFile file);


        /// <summary>
        /// 获取自动生成的检验单编号
        /// </summary>
        /// <returns>自动生成的编号</returns>
        string GetToolCode();

        Task<object> GetInboundTestWithPurchaseOrderLinq(PageDataOptions options);


        /// <summary>
        /// 获取检验单详情
        /// </summary>
        /// <param name="inspectionOrderId">检验单ID</param>
        /// <returns>检验单详细信息</returns>
        Task<object> GetInspectionOrderDetail(Guid inspectionOrderId);

        /// <summary>
        /// 获取检验明细列表
        /// </summary>
        /// <param name="inspectionOrderId">检验单ID</param>
        /// <returns>检验明细列表</returns>
        Task<object> GetInspectionDetails(Guid inspectionOrderId);

        /// <summary>
        /// 获取采购单详细信息
        /// </summary>
        /// <param name="purchaseOrderId">采购单ID</param>
        /// <returns>采购单详细信息</returns>
        Task<object> GetPurchaseOrderInfo(Guid purchaseOrderId);

        /// <summary>
        /// 获取附件信息
        /// </summary>
        /// <param name="attachmentId">附件ID</param>
        /// <returns>附件详细信息</returns>
        Task<object> GetAttachmentInfo(Guid attachmentId);



        /// <summary>
        /// 根据检验单ID获取附件列表
        /// </summary>
        /// <param name="inspectionOrderId">检验单ID</param>
        /// <returns>附件列表</returns>
        Task<object> GetAttachmentsByInspectionId(Guid inspectionOrderId);

        /// <summary>
        /// 获取操作日志
        /// </summary>
        /// <param name="inspectionOrderId">检验单ID</param>
        /// <returns>操作日志列表</returns>
        Task<object> GetOperationLogs(Guid inspectionOrderId);





    }
 }
